const app=getApp();
const server=require("../../server/server.js");
Page({
    data:{
        flag:false,
        user1:{}
    },
    getUser({detail}){
        //得到的授权信息

        // console.log(event);
        // console.log(app.userInfo);
        //如果授权过app.userInfo就有值
        let user2=app.userInfo;
        if(user2){
            // 以前已经完成了授权，但尚未完成本地注册
            // 完成注册
            server.addUser({
                headurl:user2.avatarUrl,
                name:user2.nickName,
                openid:user2.openId
            }).then((data)=>{
                // console.log(data);
                user2.id=data.result;
                this.setData({
                    flag:true,
                    user1:user2
                });
                app.userInfo=user2;
            });

        }else{
            //以前没有授权也没有后台注册
            user2=detail.userInfo;//将得到的授权信息赋值给临时变量user2
            wx.cloud.callFunction({
                name:"getUserOpenId",
                success:(data)=>{
                    //获取到openid
                    user2.openId=data.result.openid;

                    // 进行注册
                    server.addUser({
                        headurl:user2.avatarUrl,
                        name:user2.nickName,
                        openid:user2.openId
                    }).then((data)=>{
                        // console.log(data);
                        user2.id=data.result;
                        this.setData({
                            flag:true,
                            user1:user2
                        });
                        // 将信息传给app的userInfo
                        app.userInfo=user2;
                    });
                }
            });

        }
    },
    onShow(){
        // console.log(app.userInfo.id);
        // console.log(this.data.user1);
        
        if(app.userInfo){   
            if(app.userInfo.id){
                this.setData({
                    flag:true,
                    //因为每次编译一下，user1里的值就会清空，
                    //就相当于用户授权过但是退出了小程序在进来时user1却没存值了
                    //所以要将app中获取的信息传给user1
                    user1:app.userInfo
                });
            }else{
                this.setData({
                    flag:false
                });
            }
        }else{
            this.setData({
                flag:false
            });
        }
    }
})